import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:myflutterproject/basematerialwidgetsdemo.dart';
import 'package:myflutterproject/routes.dart';
import 'package:myflutterproject/utils/overScrollBehavior.dart';

/*
* Alignment.topLeft：顶部左边
 *Alignment.topCenter：顶部中间
* Alignment.topRight：顶部右边
* Alignment.centerLeft：中部左边
* Alignment.center：中部中间
* Alignment.centerRight：中部右边
* Alignment.bottomLeft：底部左边
* Alignment.bottomCenter：底部中间
* Alignment.bottomRight：底部右边
* */
class WidgetsDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('布局Widget'),
          centerTitle: true,
        ),
        body: ScrollConfiguration(
          behavior: OverScrollBehavior(),
          child: ListView(
            children: <Widget>[
              TextWidget('拥有单个子元素的布局widget'),
              ItemButton('Container（一个拥有绘制、定位、调整大小的 widget。）', containerDemo),
              ItemButton('Padding（一个widget, 会给其子widget添加指定的填充）', paddingdemo),
              ItemButton('Center（将其子widget居中显示在自身内部的widget）-冷门', ''),
              ItemButton('Align（用来确定子控件在父布局中的位置。', aligndemo),
              ItemButton('FittedBox（对child组件进行缩放和对齐方式的设置', fittedbox),
              ItemButton(
                  'AspectRatio（一个widget，试图将子widget的大小指定为某个特定的长宽比', aspectradio),
              ItemButton('ConstrainedBox（对其子项施加附加约束的widget', constrainedbox),
              ItemButton('Baseline（基准线是指将所有的元素都统一的放在一条水平线上)', baseline),
              ItemButton(
                  'FractionallySizedBox（百分百布局，类似安卓的比重)', fractionallysizebox),
              ItemButton(
                  'IntrinsicHeight（用于保证同一个row里面widget高度一致)', intrinsicheight),
              ItemButton('LimitedBox（一个当其自身不受约束时才限制其大小的盒子-冷门)', ''),
              ItemButton('Offstage（一个布局widget，可以控制其子widget的显示和隐藏。)', offstage),
              ItemButton('OverflowBox（溢出布局)', overflowbox),
              ItemButton('SizedBox（一个特定大小的盒子)', sizebox),
              ItemButton('SizedOverflowBox（SizedBox与OverflowBox的结合体)', ''),
              ItemButton('Transform（变换)', transformdemo),
              ItemButton('CustomSingleChildLayout（一个自定义的拥有单个子widget的布局widget)',
                  customsinglechildlayout),
              TextWidget('拥有多个子元素的布局widget'),
              ItemButton('Row（在水平方向上排列子widget的列表。）', rowDemo),
              ItemButton('Column（在垂直方向上排列子widget的列表。）', columndemo),
              ItemButton('Stack（可以允许其子widget简单的堆叠在一起。）', stackdemo),
              ItemButton('IndexedStack（继承自Stack，显示第index个child，其他child都是不可见的。）', indexedstack),
              ItemButton('Flow（一个实现流式布局算法的widget）', flowdemo),
              ItemButton('Table（表格）', tabledemo),
              ItemButton('Wrap（可以在水平或垂直方向多行显示其子widget。）', wrapdemo),
              ItemButton('ListBody（一个widget，它沿着一个给定的轴，顺序排列它的子元素。）', listbody),
              ItemButton('ListView（可滚动的列表控件）', listDemo),
              ItemButton('CustomMultiChildLayout（使用一个委托来对多个孩子进行设置大小和定位的小部件）', ''),
              ItemButton('LayoutBuilder（能够获取当前布局最大空间位置的容器。）', layoutbuilder),
            ],
          ),
        ));
  }
}
